/*
 * Services.h
 *
 */

#ifndef SERVICES_H_
#define SERVICES_H_

#include "../../persistence/hash/HashRecord.h"

class Service : HashRecord {
private:
	BigInt id;
	BigInt providerId;
	String name;
	String description;
	String type;

public:
	Service();
	virtual ~Service();

	Service(BigInt id, BigInt providerId, const String& name, const String& description, const String& type);
	Service(const Service& copy);
	Service& operator=(const Service& other);

	BigInt getId() const { return id; }
	BigInt getProviderId() const { return providerId; }
	const String& getName() const { return name; }
	const String& getDescription() const { return description; }
	const String& getType() const { return type; }

	void setId(BigInt value) { id = value; }
	void setProviderId(BigInt value) { providerId = value; }
	void setName(const String& value) { name = value; }
	void setDescription(const String& value) { description = value; }
	void setType(const String& value) { type = value; }

	BigInt getHashcode() const { return id; }
	BigInt size() const;
	void serialize(ISerializer& serializer) const;
	void unserialize(IUnserializer& unserializer);
};

#endif /* SERVICES_H_ */
